/*********************************************************************************************************************
 * COPYRIGHT NOTICE
 * Copyright (c) 2020,逐飞科技
 * All rights reserved.
 * 技术讨论QQ群：一群：179029047(已满)  二群：244861897(已满)  三群：824575535
 *
 * 以下所有内容版权均属逐飞科技所有，未经允许不得用于商业用途，
 * 欢迎各位使用并传播本程序，修改内容时必须保留逐飞科技的版权声明。
 *
 * @file       		delay
 * @company	   		成都逐飞科技有限公司
 * @author     		逐飞科技(QQ790875685)
 * @version    		查看doc内version文件 版本说明
 * @Software 		MDK FOR C51 V9.60
 * @Target core		STC8A8K64S4
 * @Taobao   		https://seekfree.taobao.com/
 * @date       		2020-4-14
 ********************************************************************************************************************/

#include "STC8_pca_delay.h"
#include "board.h"


uint16 pca_delay_1ms = 0;
//-------------------------------------------------------------------------------------------------------------------
//  @brief      pca延时初始化（使用pca_3模块）
//  @param      NULL            	
//  @return     void
//  Sample usage:               无需用户调用，用户请使用h文件中的宏定义
//-------------------------------------------------------------------------------------------------------------------
void pca_dealy_init(void)
{
	pca_delay_1ms = ((sys_clk) / (12 * 1000));
	
	CCAPM3 = 0x48;	//PCA_2作为软件延时
	CMOD = 0X00;	//频率=FSOC/12
	CR = 1;			//启动计数
}

//-------------------------------------------------------------------------------------------------------------------
//  @brief      内部使用用户无需关心
//  @param      NULL            	
//  @return     void
//  Sample usage:               无需用户调用，用户请使用h文件中的宏定义
//-------------------------------------------------------------------------------------------------------------------
void pca_delay(void)
{
	uint16 temp;

	temp = (CH<<8 | CL) + pca_delay_1ms;
	
	CCAP3L = temp;
	CCAP3H = (temp >> 8);	
	
	while(CCF3 == 0);
	CCF3 = 0;
}


//-------------------------------------------------------------------------------------------------------------------
//  @brief      pca延时函数
//  @param      x            	需要延时的时间（us）
//  @return     void
//  Sample usage:               无需用户调用，用户请使用h文件中的宏定义
//-------------------------------------------------------------------------------------------------------------------
void pca_delay_ms(uint16 ms)
{
	while(ms--) pca_delay();
}

